package com.c.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.c.entity.Role;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author wangxiangli
 * @create 2022-12-23-22:24
 */
@Repository
public interface RoleMapper extends BaseMapper<Role> {

    //根据用户ID查询关联的角色
    Set<Role> findByUserId(Integer userId);

    //通过用户ID查询角色ID，返回List（t_user_role）
    List<Integer> findRoleById(Integer id);

    //建立角色和权限多对多关系
    void setCheckRoleAndCheckPermission(Map<String, Integer> map);

    //维护菜单角色中间表
    void addRoleMenu(@Param("roleId") Integer roleId, @Param("menuId") Integer menuId);

    //清理当前角色关联的权限，操作中间关系表 t_role_permission 表
    void deleteAssociation(Integer id);

    //删除旧的角色菜单关系
    void deleteRoleMenuByRoleId(Integer roleId);

    //判断角色是否被用户所有关联
    Long findUserByRole(Integer id);
}
